/**
主要回顾：接口

接口：
    1.作用：
        1.1 扩展功能
        1.2 定义结束规范
        1.3 程序解耦

    2.定义格式：
        interface 接口名 {
            
        }
        
    3.注意事项：
        2.1 接口是一种特殊的类
        2.2 接口中的成员变量默认修饰符是 public static final
        2.3 接口中的成员方法都是抽象方法，默认修饰符是 public abstract
        2.4 接口不能创建对象
        2.5 接口没有构造方法
        2.6 使用接口时，需要把接口中的所有方法全部实现
        
    4.实现格式：
        class 类名 implements 接口名{
            
        }
        
    5.类与接口：
        5.1 非抽象类，实现关系——类需要实现接口的所有方法
        5.2 抽象类实现一个方法时，可以不实现接口中的方法
        5.3 一个类可以实现多个方法
    
    6.Java 类是单继承，多实现（因为多继承会产生冲突）

*/

interface A{
    //成员变量
    int i = 10;    //public static final，要初始化
    
    //成员方法
    public void MethodA();    //public abstract，抽象方法没有方法体
}

interface B{
    //成员方法
    public void MethodB();    //public abstract，抽象方法没有方法体
}

//接口可以多继承
interface C extends A, B{     //继承了 A，B接口，所以具有了它们的属性与方法
    //成员方法
    public void MethodC();    //public abstract，抽象方法没有方法体
}

interface D{
    //成员方法
    public void MethodD();    //public abstract，抽象方法没有方法体
}

//类可以实现多个接口：实现接口 C、D
class LearnInterface implements C, D{
    public static void main(String[] args) {
        Demo0903 d = new Demo0903();
        d.MethodA();
    }
    
    //实现所有接口的全部方法：接口 C、D 的全部方法
    //而 C 又继承了接口 A、B，所以还要实现接口 A、B 的全部方法
    public void MethodA(){
        System.out.println("MethodA");
    }
    
    public void MethodB(){
        System.out.println("MethodB");
    }
    
    public void MethodC(){
        System.out.println("MethodC");
    }
    
    public void MethodD(){
        System.out.println("MethodD");
    }
}